____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
JavaScript
part 11/23 · 83.7 KB total
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
function bar(parameter) { // Deklaration eines Funktionsparameters
let variable = "lokale Variable" // Deklaration einer lokalen Variablen
console.log(parameter);
console.log(variable); // Ausgabe: lokale Variable
}
bar("lokaler Parameter");
console.log(typeof parameter); // Ausgabe: undefined
console.log(typeof variable); // Ausgabe: undefined
Konstanten
Konstanten sollen mit const deklariert werden, bei der Initialisierung muss ihnen ein Wert zugewiesen werden. Für den Gültigkeitsbereich gelten dieselben Bedingungen wie bei Variablendeklarationen mit let. Konstanten können nicht durch erneute Zuweisung verändert werden, allerdings können – wenn es sich bei der Konstanten um Objekte handelt – einzelne Eigenschaften der Konstanten geändert werden.cite-ref-54[54]
Funktionen
In JavaScript sind Funktionen vollwertige Objekte mit eigenen Methoden und Eigenschaften. Sie können erstellt, überschrieben, als Argumente an andere Funktionen übergeben und von diesen erzeugt und zurückgegeben werden.
Im letzteren Fall entsteht eine Closure, auch Funktionsabschluss genannt, die beispielsweise Datenkapselung ermöglicht:
function createGreeting(name) {
let message = "Hallo, " + name + "!";
return function() {
return message;
};
}
// 'greetAda' ist eine Funktion, die von 'createGreeting' zurückgegeben wird
let greetAda = createGreeting("Ada Lovelace");
console.log(greetAda()); // Ausgabe: Hallo, Ada Lovelace!
// 'greetAlan' ist eine Funktion, die von 'createGreeting' zurückgegeben wird
let greetAlan = createGreeting("Alan Turing");
console.log(greetAlan()); // Ausgabe: Hallo, Alan Turing!
// Der Zugriff auf den Wert 'message' ist von außen nicht möglich
console.log(typeof message); // Ausgabe: undefined
Nicht jedes Argument einer Funktion muss beim Aufruf angegeben werden. Fehlende Argumente erhalten den Wert undefined. Seit ECMAScript 2015 können Parameter auch mit Standardwerten definiert werden. Außerdem ermöglicht das arguments-Objekt den Zugriff auf die Argumente innerhalb der Funktion.
Erzeugung
Es gibt mehrere Möglichkeiten, in JavaScript Funktionen zu erzeugen:cite-ref-55[55]
• Funktionsdeklarationen („Function Declarations“):
function f(x, y) {
return x + y;
}
• Funktionsausdrücke („Function Expressions“):
let f = function(x, y) {
return x + y;
};
• Sofort ausgeführte Funktionsausdrücke („Immediately-Invoked Function Expressions“):
Anonyme Funktionen können auch direkt ausgeführt werden, ohne sie vorher einer Variable zuzuweisen. Das kann zur Kapselung des Gültigkeitsbereichs von Variablen verwendet werden.
(function(x, y) {
return x + y;
})(2, 3);
• Benannte Funktionsausdrücke („Named Function Expressions“):
Der Variablen f wird eine Funktion mit Bezeichner g zugewiesen. Außerhalb der Funktion ist sie mit f ansprechbar, innerhalb mit f und g.
let f = function g(x, y) {
return x + y;
};
• Funktionskonstruktor („Function Constructors“):
let f = new Function('x', 'y', 'return x + y;');
• Pfeilfunktionen („Arrow Functions“):
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────